#include <stdio.h>
#define XXX (1+2*3)
//#define MAX(a,b)  ((a) > (b) ? (a) :(b)) 
#define MAX(a, b)  ({\
                    typeof(a) _a = a;\
                    typeof(b) _b = b;\
                     (_a > _b) ? _a : _b;\
                     })
#define ADD(a,b)  ((a)+(b))                
#define DIV(a,b)  ((a)/(b))
#define P 3.14
int main()
{
    // printf("hello,world\n");
    // printf("%f\n", P);

    // int a = XXX*3;// (1+2*3)*3
    // printf("a = %d\n",a);

    // a = MAX("123","xcv");// "123" > "xcv" ? "123" : "xcv";
    // printf("%d\n", a);
    // a = MAX("123",100);// "123" > 100 ? "123" : 100;
    // printf("%d\n", a);

    int a = 2, b = 4;
    printf("%d\n", ADD(a,b)/2);
    //printf("%d\n", ADD(++a,++b));
    //printf("%d\n", MAX(++a,++b));// ((a) > (b) ? (a) :(b)) ==> ((++a) > (++b) ? (++a) : (++b))
    printf("%d\n", MAX(++a,++b));//({typeof(++a) _a = ++a;typeof(++b) _b = ++b; (_a > _b) ? _a : _b;})
    printf("a = %d, b = %d\n", a, b);
    // printf("%d\n", ADD(a,a+b));// 
    // printf("%d\n", DIV(a,a+b));// ==> ((a)/(a+b))      
}

